/*-
 * *****
 * Concord
 * -----
 * Copyright (C) 2017 - 2018 Walmart Inc.
 * -----
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =====
 */

import * as React from 'react';
import { useEffect, useState } from 'react';
import { Icon } from 'semantic-ui-react';
import { version as apiVersion } from '../../../api/server';

export default () => {
    const [loading, setLoading] = useState(false);
    const [version, setVersion] = useState('n/a');

    useEffect(() => {
        const fetchData = async () => {
            setLoading(true);
            setVersion('n/a');

            try {
                const result = await apiVersion();
                setVersion(result.version);
            } catch (e) {
                setVersion(`error: ${e}`);
            } finally {
                setLoading(false);
            }
        };

        fetchData();
    }, []);

    if (loading) {
        return <Icon name="circle notched" loading={true} />;
    }

    return <>{version}</>;
};
